package ucla.axelia.controlador.servicios;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;

import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;

import com.obelisco.modelo.data.DataGenerica;

import ucla.axelia.controlador.interfaces.IServicioAdministracionReporteInicioFin;
import ucla.axelia.modelo.beans.AsistenciaActividad;
import ucla.axelia.modelo.dao.ServicioAsistenciaVoluntarioDAO;
import ucla.axelia.modelo.data.AsistenciaVoluntario;

public class ServicioAdministracionReporteHorasVoluntarioPorTActividad
		implements IServicioAdministracionReporteInicioFin {

	private ServicioAsistenciaVoluntarioDAO servicioAsistenciaVoluntarioDAO;
	
	@Override
	public List<AsistenciaActividad> obtenerLista(Date fechaInicio, Date fechaFin) {
		List<AsistenciaActividad> asistenciaActividades = new ArrayList<AsistenciaActividad>();
		List<Criterion> criterios = new ArrayList<Criterion>();
		criterios.add(Restrictions.between("fechaRegistro", fechaInicio, fechaFin));
		List<AsistenciaVoluntario> asistenciasVoluntarios;
		asistenciasVoluntarios =
			servicioAsistenciaVoluntarioDAO.buscarPorPropiedades(criterios, DataGenerica.DATA_ACTIVO);
		for (AsistenciaVoluntario asistenciaVoluntario : asistenciasVoluntarios)
			asistenciaActividades.add(
					new AsistenciaActividad(asistenciaVoluntario));
		Collections.sort(asistenciaActividades);
		return asistenciaActividades;
	}

	
	// Getters y Setters
	
	public ServicioAsistenciaVoluntarioDAO getServicioAsistenciaVoluntarioDAO() {
		return servicioAsistenciaVoluntarioDAO;
	}

	public void setServicioAsistenciaVoluntarioDAO(
			ServicioAsistenciaVoluntarioDAO servicioAsistenciaVoluntarioDAO) {
		this.servicioAsistenciaVoluntarioDAO = servicioAsistenciaVoluntarioDAO;
	}

}
